/**
 * 匹配任意字符
 */
// let hd  = "houdunren 2010";
// console.log(hd.match(/\d/g));

/**
 * 匹配所有电话号码
 */
// let hd = `
// 	张三:010-99999999,李四:020-88888888
// `;
//
// let res = /\d{3}-\d{7,8}/g
// console.log(hd.match(res));

/**
 * 匹配字母数字下划线
 */
// let hd = "hdcms@"
// console.log(hd.match(/\w/g));

/**
 * 内容多行匹配
 */
/*let hd = `
  #1 js,200元 #
  #2 php,300元 #
  #9 houdunren.com # 后盾人
  #3 node.js,180元 #
`;

let lesson = hd.match(/^\s*#\d+\s+.+\s+#$/gm).map(v=>{
    v = v.replace(/\s*#\d+\s/,"").replace(/\s+#/,"");
    [name, price] = v.split(",");
    return {name, price}
});
console.log(JSON.stringify(lesson,null,2))*/

/**
 * 时间的匹配
 */
// let tel = "2022-02-23";
// console.log(tel.match(/\d{4}([-\/])\d{2}\1\d{2}/))

/**
 * 索引位置
 * @type {string}
 */
// let hd = `后盾人不断分享视频教程，后盾人网址是 houdunren.com`;
// let reg = /后盾人(.{2})/g;
// reg.lastIndex = 10; //从索引10开始搜索
// console.log(reg.exec(hd));
// console.log(reg.lastIndex);

/**
 * 获取用户名称
 */
// let hd = `张三:010-99999999,李四:020-88888888`;
// let res = hd.match(/[^:\d-,]{2,3}/g);
// console.log(res);

/**
 * 原子组
 */
// const hd = `<h1>houdunren.com</h1>`;
// console.log(/<(h1)>.+<\/\1>/.test(hd));
// console.log(hd.match(/<(h1)>.+<\/\1>/));
// let hd = `admin@houdunren.com.cn`;
// let reg = /^[\w-]+@([\w-]+\.)+(org|com|cc|cn)$/;
// console.log(hd.match(reg));

/**
 * 引用分组
 */
// let hd = `
//   <h1>houdunren</h1>
//   <span>后盾人</span>
//   <h2>hdcms</h2>
// `;
//
// let reg = /<(h[1-6])>([\s\S]*)<\/\1>/gi;
// console.log(hd.replace(reg, `<p>$2</p>`))

// let hd = `
//   https://www.houdunren.com
//   http://houdunwang.com
//   https://hdcms.com
// `;
//
// let reg = /https?:\/\/(?:\w+\.)?\w+\.(?:com|org|cn)/gi;
//
// console.dir(hd.match(reg));
// console.dir(reg.exec(hd));

/**
 * 批量验证正则表达式  所有条件都符合才可以
 */
// function patchTest(value){
//     const regs = [
//         /^[a-z0-9]{5,10}$/i, //小写字母与0-9
//         /[A-Z]/, // 大写字母A-Z
//     ];
//     return regs.every(e=> e.test(value)); // 每个正则表达式都匹配后
// }
//
// console.log(patchTest("aaa123"));

/**
 * 禁止贪婪的算法
 */
// let str = '<span>houdunren</span>';
// let reg = /<span>([\s\S]+?)<\/span>/;

// str.replace(reg,(v,p1,) => {
//     console.log(v); // 完整字符串
//     console.log(p1); // 匹配的字符
//     return (`<h4>${p1}</h4>`)
// });

/**
 * matchAll 完成全部匹配
 */
// let str = `
// <h1>houdunrne</h1>
// <h2>hdcms.com</h2>
// <h3>后盾人</h3>
// `;
//
// let reg = /<?:(h[1-6])>([\s\S]+?)<\/\1>/gim;
// const hd = str.matchAll(reg);
// for (const iterator of hd) {
//     console.dir(iterator);
// }

// let str = `
//   <h3>哈哈哈,sdfsdf</h3>
//   <h2>嘿嘿嘿</h2>
//   <h4>呵呵呵</h4>
//   <h5>嘎嘎嘎</h5>
// `
// let reg = /<(h[1-6])>([\s\S]+?)<\/\1>/gm;
// let listall = str.matchAll(reg);
// let htmlData = [];
// for (const item of listall) {
//     console.log(item);
//     htmlData.push(item[2]);
// };
// console.log(htmlData);

/**
 * 字符串的search方法
 */

// let urls = `
//     http://www.baidu.com,
//     http://taobao.com.cn,
//     https://www.tmall.com/
// `;
//
//
// let reg = /https?:\/\/(\w+\.)?(\w+\.)+(com|cn)/g;
// console.log(urls.match(reg));

/**
 * 用exec完成全局匹配 正则方法
 * reg.lastIndex
 */
// let str = "houdunren";
// let reg = /u/gi;
// //console.log(reg.exec(str)); // 因为 reg lastIndex
// let result = [];
// let res = null;
// while (res = reg.exec(str)) {
//     result.push(res);
// }
// console.log(result);

// 封装方法查询内容
// function search(str, reg){
//     let result = [];
//     let res = null;
//     while((res = reg.exec(str))){
//         result.push(res[0]);
//     }
//     return result;
// }

/**
 * 字符串替换
 */

// let str = '(010)99999999';
// let reg = /\((\d{3})\)(\d{7,8})/g;
// console.log(str.match(reg));
// console.log(str.replace(reg,"$1-$2"));
//
// let hd = "=后盾人=";
// console.log(hd.replace(/后盾人/,"$'$'$&$'$'"));


let reg = /(.{2}作业)(.{2})/g;
let text = "动火作业一级";
console.log(text.replace(/(.{4})(.{2})/g,"$2$1"));







